package Thread.ThreadPoll;

import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Demo36 {
    public static Object lock=new Object();
    public static void main(String[] args) throws InterruptedException {
        //使用线程池时候，要指定线程的个数
        //实际开发中，通过实验的方式找到一个合适的线程数
        //给线程池设置不同的线程数，分别进行性能测试，关注响应时间/消耗的资源

        ExecutorService service= Executors.newFixedThreadPool(4);
        for (int i = 0; i < 100; i++) {
            int id=i;
            service.execute(()->{
                Thread cur=Thread.currentThread();
                System.out.println("hello thread"+id+','+cur.getName());
            });
        };
        //不要立即终止，要留一个缓冲时间让程序把任务都执行完
        Thread.sleep(1000);
        //关闭线程池，把线程池中的所有线程终止掉
        service.shutdown();
        System.out.println("程序退出...");
    }

    }
